Defines a two-dimensional Bernoulli-Euler beam element.
The local x-axis runs from node 1 to node 2. The local z-axis is normal to the 2D element plane.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=real64), | public | :: | area |
The element cross-sectional area. |
|||
| type(material), | public | :: | material |
The material. |
|||
| real(kind=real64), | public | :: | moment_of_inertia |
The beam moment of inertia (second moment of area). |
|||
| type(node), | public | :: | node_1 |
The first node of the element (s = -1). |
|||
| type(node), | public | :: | node_2 |
The second node of the element (s = 1). |
Initializes a new [[beam_element_2d]].
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(material), | intent(in) | :: | mat |
The material. |
||
| real(kind=real64), | intent(in) | :: | area |
The cross-sectional area. |
||
| real(kind=real64), | intent(in) | :: | moi |
The moment-of-inertia. |
||
| class(node), | intent(in) | :: | nd1 |
Node 1 of the element. |
||
| class(node), | intent(in) | :: | nd2 |
Node 2 of the element. |
The new [[beam_element_2d]].
Computes the local bending moment at the specified natural coordinate.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam element. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | displacement |
The element displacement vector in the global coordinate system. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinate at which to evaluate the moment. |
The local bending moment.
Computes the constitutive matrix for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
The resulting matrix.
Evaluates the i-th shape function at natural coordinate s.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The index of the shape function to evaluate. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The value of the natural coordinate at which to evaluate the shape function. |
The value of the i-th shape function at s.
Computes the external force vector for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_element), | intent(in) | :: | this |
The line_element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | q |
The surface traction or body-force vector. |
|
| integer(kind=int32), | intent(in), | optional | :: | rule |
The optional numerical integration rule. |
The resulting vector.
Gets the dimensionality of the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
The dimensionality.
Gets the number of degrees of freedom per node.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
The number of DOF per node.
Gets the requested node from the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The local index of the node to retrieve. |
The requested node.
Gets the number of nodes for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
The number of nodes.
Returns the natural coordinate of a terminal node.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_element), | intent(in) | :: | this |
The line_element object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The local node index. |
The natural coordinate of the node.
Gets the terminal node numbers for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
||
| integer(kind=int32), | intent(out) | :: | i1 |
The index of the node at the head of the element. |
||
| integer(kind=int32), | intent(out) | :: | i2 |
The index of the node at the tail of the element. |
Computes the Jacobian matrix for a 2D beam element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The value of the natural coordinate at which to evaluate the matrix. |
The Jacobian matrix.
Computes the length of the line_element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_element), | intent(in) | :: | this |
The line_element object. |
The length of the line element.
Computes the mass matrix for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
||
| integer(kind=int32), | intent(in), | optional | :: | rule |
The integration rule. The rule must be one of the following:
The default integration rule is MECH_TWO_POINT_INTEGRATION_RULE. |
The resulting matrix.
Computes the rotation matrix for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
The resulting 6-by-6 rotation matrix.
Computes the shape function matrix for a beam element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The value of the natural coordinate at which to evaluate the shape functions. |
The shape function matrix.
Computes the local shear force at the specified natural coordinate. The sign convention is the derivative of the local bending moment with respect to the local element coordinate.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam element. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | displacement |
The element displacement vector in the global coordinate system. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinate at which to evaluate the shear force. |
The local shear force.
Computes the stiffness matrix for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
||
| integer(kind=int32), | intent(in), | optional | :: | rule |
The integration rule. The rule must be one of the following:
The default integration rule is MECH_TWO_POINT_INTEGRATION_RULE. |
The resulting matrix.
Computes the line-element strain from global element displacements at the specified natural coordinate.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_element), | intent(in) | :: | this |
The line_element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | displacement |
The element displacement vector in the global coordinate system. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinates at which to evaluate the strain. |
The resulting strain vector in the element coordinate system.
Computes the strain-displacement matrix for a 2D beam element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_2d), | intent(in) | :: | this |
The beam_element_2d object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The value of the natural coordinate at which to evaluate the matrix. |
The strain-displacement matrix.
Computes the line-element stress result from global element displacements at the specified natural coordinate.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_element), | intent(in) | :: | this |
The line_element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | displacement |
The element displacement vector in the global coordinate system. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinates at which to evaluate the stress. |
The resulting stress vector in the element coordinate system.